1. Field of the Invention
This invention relates to service-oriented architectures, and more particularly, to collaborative tagging for services integrated within an SOA.
2. Description of Background
Service Oriented Architecture (SOA) is a development of distributed computing and modular programming in which existing or new technologies are grouped into atomic systems. SOAs use software services to build applications. Services are relatively large, intrinsically unassociated units of functionality with externalized service descriptions. In an SOA environment, one or more services communicate with one another by passing data from one service to another, or coordinating an activity between one or more services. In this manner, atomic services can be orchestrated into higher-level services. The architecture defines protocols that describe how services can talk to each other, and independent services can be accessed without knowledge of the underlying platform implementation.
A current challenge in SOA development is to build business driven composite services atop of atomic informational services. By defining a methodology for the use and re-use of software services and business processes, which typically encompass multiple service invocations, SOA has the potential to provide a great deal of flexibility and cost savings to enterprises that rely on IT.
The SOA concept is based upon an architectural style that defines an interaction model between three primary building blocks: a) a service provider, which publishes a service description and provides the implementation for the service; b) a service requester, which can either use the uniform resource identifier (URI) for the service description directly or find the service description in a service registry and bind and invoke the service; and c) a service broker, which provides and maintains the service registry using, for example, the Universal Description Discovery and Integration (UDDI) specification, which defines a way to publish and discover information about web services.
A web service is a software application designed to support interoperable machine-to-machine interaction over a network, and is frequently simply Web APIs that can be accessed over a network, such as the Internet, and executed on a remote system hosting the requested services. Web services can provide an example of an SOA implementation in which the basic unit of communication is a message, rather than an operation, by making functional building blocks accessible over standard Internet protocols that are independent from platforms and programming languages.
“Web 2.0” is a term used to refer to an increasingly frequented type of web application that is primarily distinguished by the ability of visitors to continually contribute information for collaboration and sharing. Web 2.0 applications use web services and may include composite user interfaces that provide combinations of various service technologies such collaborative and social software, Web syndication, weblogs, and wikis. While there are no set standards for Web 2.0, it is a user-driven architecture of participation that utilizes the SOA characteristics of building on the existing architecture and using services. The evolving technology infrastructure of Web 2.0 includes various applications that can provide users with information storage, creation, and dissemination capabilities that go beyond what had formerly been expected of web applications.
A number of Web 2.0 applications feature the extensive use of folksonomies. A folksonomy involves the practice of collaborative categorization using freely-chosen tags, that is, metadata in the form of descriptive keywords or terms associated with or assigned to a piece of information, and arises in Web applications in which special provisions are made at the site level for creating and using tags for web content. Collaborative tagging in this fashion is intended to enable a body of information to be increasingly easy to search, discover, and navigate over time, and folksonomies are commonly used to label, classify, and retrieve web content such as web pages, digital images, internet bookmarks, and web links. As folksonomies develop in web-mediated social environments, users often discover the tag sets of another user who tends to interpret and tag content in a way that makes sense to them. This can result in an immediate and rewarding gain in user capacity to find related content.
Flickr and del.icio.us are examples of websites that use folksonomic tagging to organize content. Flickr is a digital image storage and management service that allows the user through a user interface to tag images with descriptive nouns, verbs, and adjectives and systematically perform CRUD (create, read, update, and delete) operations on photography entries. del.icio.us is a social bookmarking site that allows users to create and store Internet bookmarks and then tag them with many descriptive words, allowing others to search by those terms to find sites that have been found useful.
Within the realm of a business enterprise and its network of partners, there are numerous opportunities for collaboration. The use of Web 2.0 technologies and SOA principles has the potential to increase the reach and improve the richness of this interaction in enterprise informational services, leading to easier development of new business models and processes by using readily available, intuitive modular elements. By creating an environment in which employees can collaborate efficiently by leveraging each other's intellect and resources, employees can create stronger and more successful products. Nevertheless, most software that is touted as enabling enterprise collaboration is difficult to use, cumbersome, and does not adequately empower employees to share their content. This results in SOA implementations that undesirably add more custom logic and increased complexity to an IT infrastructure. A big hurdle for the typical large enterprise is the ability to standardize knowledge practice across that enterprise and to implement tools and processes that support that aim.
An example of an enterprise or business-driven collaborative enterprise environment is that of a composite service system, which comprises a collection of collaborative or interactive services for which aggregate domain-specific (or context-aware) content information is intended be utilized by employees to maintain consistency across all of the enterprise informational services. Examples of systems that could be implemented in this fashion include project management systems, which are used to schedule, track, and chart the steps in a project as it is being completed, workflow systems, which enable the collaborative management of tasks and documents within a knowledge-based business process, and knowledge management systems, which are used to collect, organize, manage, and share various forms of information. Operations such as record management, content management, collaborative software, workflow or business process management, and other mechanisms designed to capture the efforts of many into a managed content environment are typical of these workplace collaboration technologies.
Domain knowledge is the body of knowledge about a particular activity environment. In an enterprise, domain knowledge has traditionally been organized (formally or informally) in an institutionally supported taxonomy that is domain-specific. Domain knowledge may be kept in data repositories such as Lotus Notes Teamrooms, ad-hoc websites, knowledgebases, social bookmarks, or applications, and so on. A workplace-generated folksonomy would be useful, for example, with business-driven collaborative or interactive management systems of composite services that are designed to help employees working on a common task achieve their goals.
Nevertheless, use the unsystematic methodology of folksonomic tagging may be unreliable and inconsistent for use in large enterprises. Typically, there is no information about the meaning or semantics of a tag, and because of the lack of a hierarchical or systematic structure for the tagging system, the terms often fail to show their relationship to other objects of the same or similar type, or lead to irrelevant connections between objects. In a situation in which a user in a collaborative or social software environment has found a new, important piece of information, or has posted new content relevant to the community on an external collaborative software application, the user can only employ existing folksonomies or create a tag on-the-fly, which may not be consistent with the domain-specific taxonomy. Thus, while this user will be aware of the new object, other users in the same environment will not encounter this new information when performing tag searches using, for example, a feed reader.
If a tagging system is informally defined, continually changing, and lacking governance, it will be burdensome to use the tags so constructed to automate workflow and business processes, and tags associated with resources could grow to unruly proportions. Keeping track of this information is challenging and, as the use of collaborative and social software increases both internally (that is, within a corporate firewall) and externally (or publicly), the issue of synchronizing tagged information between the public and private spaces becomes a greater concern, as the public social software applications are not aware of the private domain specific tags or taxonomies.